import {mapMutations} from 'vuex';
import urlConfig from './config.js';

const request = {}
const headers = {}
const PORT1 = '/baseinfo'
    
request.globalRequest =  async (url, method, data, power) => {
/*     权限判断 因为有的接口请求头可能需要添加的参数不一样，所以这里做了区分
    1 == 不通过access_token校验的接口
    2 == 文件下载接口列表
    3 == 验证码登录 */
    headers['content-type'] = 'application/json;charset:utf-8';
    switch (power){
        case 1:
            // headers['Authorization'] = 'Basic a3N1ZGk6a3N1ZGk='
			headers['content-type'] = 'application/json;charset:utf-8';
            break;
        case 2:
            // headers['Authorization'] = 'Basic a3N1ZGlfcGM6a3N1ZGlfcGM='
            break;
        case 3:
            // responseType = 'blob'
            break;
        default:
            // headers['Authorization'] = `Bearer ${
            //     this.$store.getters.userInfo
            // }`
            // headers['TENANT-ID'] = this.$store.getters.userInfo.tenant_id
            break;
    }
	
    return await uni.request({
        url: urlConfig + url,
        method,
        data: data,
        dataType: 'json',
        header: headers
    }).then(res => {
		if(!res){
			uni.showToast({
				title: "接口调用失败!",
				duration: 3000
			});
			return;
		}
		const result = res[1];
		if(!result){
			uni.showToast({
				title: "获取接口调用失败!",
				duration: 3000
			});
			return;
		}
		return result.data;
		
		if(result.data.code === 999){
			uni.showToast({
				title: "非法用户请重新登录",
				duration: 3000
			});
			console.log("非法用户");
			//准备注销登录
			getApp().globalData.logout = 1;
			wx.switchTab({
				url:"/pages/ucenter/ucenter",
				success: (res) => {
				    let page = getCurrentPages().pop();
				    if (page == undefined || page == null) {
						return;
					}
					page.onLoad();
				    },
				fail: (res) => {
				 }
			});
			return;
		}
		
		if(result.data.code === 211){
			return result.data;
		}
		
		if(result.data && result.data.code == 3){
			console.log('未查询到值')
			return;
		}
		if(result.data && result.data.code == 110){
			return 110;
		}
		if(result.data.meta && result.data.meta.code == 110){
			return 110;
		}
		if(result && (
			result.statusCode != 200 
			|| (result.data.meta && result.data.meta.code != 0))){
			uni.showToast({
				title: result.statusCode+" 服务器异常!",
				duration: 3000
			});
			return;
		}
		if(!result.data.datas){
			uni.showToast({
				title: "接口返回数据为空!",
				duration: 3000
			});
			return;
		}
        return result.data.datas;
    }).catch(parmas => {
		
　　　　　　switch (parmas.code) {
　　　　　　　　case 401:
　　　　　　　　　　uni.clearStorageSync();
　　　　　　　　　　break
　　　　　　　　default:
　　　　　　　　　　uni.showToast({
　　　　　　　　　　　　title: parmas.message,
　　　　　　　　　　　　icon: 'none'
　　　　　　　　　　})
　　　　　　　　　　return Promise.reject()
　　　　　　　　　　break
　　　　　　}
　　})
 } 

export default request